//
// Created by francklinson on 2021/11/26 AT 10:59.
// May Saint Diana bless you!
//

#include <boost/shared_ptr.hpp>
#include <boost/ptr_container/ptr_vector.hpp>
#include <vector>
#include <boost/ptr_container/ptr_unordered_map.hpp>
#include <boost/ptr_container/ptr_unordered_set.hpp>

int main() {
    std::vector<boost::shared_ptr<int> > v;
    v.push_back(boost::shared_ptr<int>(new int(1)));
    v.push_back(boost::shared_ptr<int>(new int(2)));
    /**
     * boost::ptr_vector 专门用于动态分配的对象，它使用起来更容易也更高效。
     * boost::ptr_vector 独占它所包含的对象，因而容器之外的共享指针不能共享所有权，
     * 这跟 std::vector<boost::shared_ptr<int> > 相反。
     */
    boost::ptr_vector<int> v2;
    v2.push_back(new int(1));
    v2.push_back(new int(2));
}

